#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>

void *thmain1(void *arg);   // 线程1的主函数

void func1(int sig){
    printf("func1 catch signal %d\n", sig);
}

int main(int argc, char *argv[])
{
    signal(2, func1);

    pthread_t thid1 = 0;
    if (pthread_create(&thid1, NULL, thmain1, NULL) != 0)
    {
        printf("pthread_create failed.\n");
        exit(-1);
    }

    sleep(5);
    pthread_kill(thid1, 2);
    // 等待子线程退出。
    printf("join...\n");
    pthread_join(thid1, NULL);
    printf("join ok.\n");

}

void *thmain1(void *arg)
{
    // signal(2, func2);
    // signal(2, SIG_IGN);

    printf("sleep...\n");
    sleep(10);
    printf("sleep ok.\n");
    return (void*)1;
}
